Multi-task joint computing unloading and resource allocation method based on D2D communication

ABSTRACT

The present disclosure discloses a multi-task joint computing unloading and resource allocation method based on D2D (Device-to-Device) communication. For solving the problems that computing resources of a local terminal cannot complete all computing tasks on time when there are multiple computing tasks with delay requirements on a local terminal, the method introduces a computing unloading mechanism to reduce the delay and the overhead of the local terminal itself. The method is based on a D2D communication technology. In the scenario where mobile terminals are densely distributed, the local terminal can unload the computing tasks at the same time to several surrounding idle terminals for processing. According to the method, a total overhead objective function is established in consideration of the task delay, energy consumption, and unloading fee.

CROSS-REFERENCE TO RELATED APPLICATIONS

The application claims priority to Chinese patent application No. 202210101461.2, filed on Jan. 27, 2022, the entire contents of which are incorporated herein by reference.

TECHNICAL FIELD

The present disclosure relates to the technical field of communication, and in particular to a multi-task joint computing unloading and resource allocation method based on D2D (Device-to-Device) communication.

BACKGROUND

The rapid development of mobile networks and smart devices provides a large number of service applications for people's daily life, but at the same time, these applications also produce a large number of computing-intensive tasks. Especially with the emergence of virtual reality, face recognition, and environmental interactive applications, the limited computing power of mobile terminal equipment is difficult to meet complex tasks with a large amount of computation and delay sensitivity. Mobile edge computing (MEC) is considered as an effective technology to address this challenge. MEC provides cloud computing capability in the radio access network (RAN) and connects users directly to the nearest edge computing server, which allows the needs of users to be met at any time and at any place. By unloading tasks to the edge computing server connected to the base station, users can get a better application experience. MEC servers have relatively high computing power, can complete tasks in a short time, and return the results to users.

In practice, mobile terminals are densely distributed, and each equipment has certain computing power. Users with relatively low computing power can unload their tasks to surrounding idle devices through device-to-device (D2D) communication. Compared with a MEC unloading scheme, the D2D technology can further enhance the user experience, make full use of the collaboration between mobile users, and effectively relieves the pressure on cellular networks in crowded scenes. In the scenario where user terminals have multi-task computing requirements, a reasonable task unloading decision and resource allocation scheme can effectively reduce the user's expenses.

SUMMARY

The present disclosure is aimed at providing a multi-task joint computing unloading and resource allocation method based on D2D (Device-to-Device) communication. The local terminal unloads several computing tasks generated by itself to several surrounding idle terminals at the same time, and the method is applied to reduce the overhead of the task delay, the energy consumption of the local terminal, and other aspects.

To realize the above function, the multi-task joint computing unloading and resource allocation method based on D2D (Device-to-Device) communication disclosed by the present disclosure executes the following steps according to a preset period to unload the computing tasks on the local terminal to all idle terminals with idle computing resources around the local terminal and realize the allocation of the computing tasks of the local terminal with the minimum total overhead.

S1. The idle terminals in a preset range are detected by taking the local terminal as the center, and the computing power f_(n), energy consumption pricing φ_(n), maximum allowable energy consumption E_(max) ^(n), and channel state g_(n) of the idle terminals are obtained, where n∈{1,2, . . . , N}, and N represents the total number of idle terminals.

S2. Based on the execution mode of the computing tasks on the local terminal, decision samples are constructed.

S3. Respectively for the decision samples, based on the processing delay function t_(m) of the computing tasks, where m∈{1,2, . . . , M}, M represents the total number of computing tasks, the total computing energy consumption function E_(loc) for the local terminal processing the computing tasks assigned by the decision tasks, the transmission energy consumption function E_(n) ^(tran) for the idle terminals involved in the decision samples respectively receiving the computing tasks assigned by the decision samples, where n∈{1,2, . . . , N}, N represents the total number of idle terminals, and the fee charging function for the idle terminals respectively receiving the computing tasks of the local terminal, the total overhead objective function and constrain conditions of the local terminal corresponding to the decision samples is determined.

S4. Respectively for the decision samples, the upper limit of the transmission delay between the local terminal corresponding to the decision samples and the idle terminals and the lower limit of the delay between the local terminal and the idle terminals are calculated, and the optimal transmission delay function corresponding to the decision samples is determined under constraint conditions:

respectively for the decision samples, the total overhead of the local terminal corresponding to the decision samples is calculated based on the total overhead objective function and constraint conditions of the local terminal corresponding to the decision samples and the optimal transmission delay function corresponding to the decision samples under the constraint conditions.

S5. The decision samples that minimize the total overhead of the local terminal are selected with the goal of minimizing the total overhead of the local terminal through a preset number of iterations, and the allocation of the computing tasks on the local terminal is completed based on the decision samples.

A preferred technical scheme of the invention is as follows: the specific steps of constructing decision samples in step S2 are as follows:

-   -   S21, computing tasks on a local terminal are represented by a         set Γ={T₁, T₂, . . . T_(M)}, wherein the total number of the         computing tasks is represented by M; the attributes of the         computing tasks are represented by a set {C_(m), D_(m), L_(m)},         wherein C_(m) represents the total number of CPU cycles required         to process the computing tasks, D_(m) represents the data volume         of the computing tasks, L_(m) represents the maximum delay         allowed by the computing tasks, wherein m∈{1,2, . . . , M}, and         M represents the total number of computing tasks;     -   S22, idle terminals are sorted and numbered in descending order         according to channel gains thereof, the channel gains of the         idle terminals satisfy the requirement of g₁≥ . . . ≥g_(n)≥ . .         . ≥g_(N), wherein g_(n) represents the channel gain of one of         the idle terminals, n∈{1,2, . . . , N}, N represents the total         number of idle terminals, and the idle terminals are presented         by a set Λ={1,2, . . . , N};     -   S23, respectively for one computing task T_(m) among the         computing tasks on the local terminal, wherein m∈{1,2, . . . ,         M}, and M represents the total number of computing tasks, the         execution mode of the computing task T_(m) is constructed as         follows:     -   {x_(m,0), x_(m,1), . . . , x_(m,n), . . . , x_(m,N)}     -   where x_(m,n) represents the execution mode of the computing         task T_(m), wherein n∈{1,2, . . . , N}, N represents the total         number of idle terminals, x_(m,0)=1 represents that the         computing task T_(m) is processed at the local terminal,         x_(m,0)=0 represents that the computing task T_(m) is not         processed at the local terminal, x_(m,n)=1 represents that         computing task T_(m) is unloaded to the idle terminal n for         processing, x_(m,n)=0 represents that the computing task T_(m)         is not processed on the idle terminal n, and the execution mode         of each computing task in computing task sets on the local         terminal satisfies Σ_(n=0) ^(N)x_(m,n)=1; and     -   S24, respectively for the computing tasks on the local terminal,         the decision samples are constructed based on the execution mode         of the computing tasks on the local terminal, each of the         decision samples is represented by a matrix A with M rows and         N+1 columns, and the matrix A is as follows:

$A = \begin{pmatrix} x_{1,0} & x_{1,1} & x_{1,2} & \cdots & x_{1,N} \\ x_{2,0} & x_{2,1} & x_{2,2} & \cdots & x_{2,N} \\  \vdots & \vdots & \vdots & \vdots & \vdots \\ x_{M,0} & x_{M,1} & x_{M,2} & \cdots & x_{M,N} \end{pmatrix}$

-   -   wherein the first column in the matrix A represents the         execution condition of the computing tasks on the local         terminal, and the second column to the (N+1)-th column represent         the execution condition of the computing tasks unloaded to the         idle terminals.

A preferred technical scheme of the invention is as follows: the specific steps of determining the total overhead objective function and constraint conditions of the local terminal in step 3 are as follows:

-   -   S31, respectively for each decision sample, the number of         computing tasks on the local terminal and the idle terminals is         represented by a set {K₀, K₁, . . . , K_(N)}, and the computing         tasks on the local terminal are arranged in descending order         according to the maximum allowable delay L_(m), and are         represented by a set S₀={S_(0,1), S_(0,2), . . . , S_(0,K) ₀ };         the computing tasks on the idle terminal n are arranged in         descending order according to the maximum allowable delay L_(m),         and are represented by a set S_(n)={S_(n,1), S_(n,2), . . . ,         S_(n,K) _(n) };     -   S32, the total computing energy consumption function E_(loc) for         the local terminal processing the computing tasks assigned by         the decision tasks is calculated, and the transmission energy         consumption function E_(n) ^(tran) for the idle terminals         involved in the decision samples respectively receiving the         computing tasks assigned by the decision samples are as follows:         E _(loc)=Σ_(m=1) ^(M) x _(m,0) μC _(m)         E _(n) ^(tran) =t _(tran) ·P ^(tot)     -   where μ represents the energy consumed in each CPU cycle,         t_(tran) represents the transmission time for the local terminal         to unload the computing tasks to the idle terminals, and P^(tot)         represents the minimum total transmission power of the local         terminal;     -   wherein the decision x is executed based on the computing tasks         corresponding to the decision samples, and the relationship         between the transmission time t_(tran) for the local terminal to         unload the computing tasks to the idle terminals and the minimum         total transmission power P^(tot) of the local terminal is as         follows:

${P^{tot}\left( {x,t_{tran}} \right)} = {{{Wn}_{0}{\sum_{n = 1}^{N}{\left( {\frac{1}{g_{n}} - \frac{1}{g_{n - 1}}} \right)2^{\frac{1}{t_{tran}W}{\sum\limits_{k = n}^{N}{\sum\limits_{m = 1}^{M}{x_{m,k}D_{m}}}}}}}} - \frac{{Wn}_{0}}{g_{N}}}$

-   -   where g_(n) represents the n-th idle terminal, g_(n-1)         represents the (n−1)-th idle terminal, g_(N) represents the N-th         idle terminal, and g_(n-1)≥g_(n)≥g_(N), W represents the         bandwidth of a transmission channel, n₀ represents the power         spectral density of white noise, and k represents the serial         number of the idle terminal;     -   S33, one computing task T_(m) among the computing tasks on the         local terminal is unloaded to the idle terminal n, and the         expression of the processing delay t_(m) of the computing task         T_(m) is as follows:

$t_{m} = \left\{ \begin{matrix} {\sum_{i = S_{0,1}}^{S_{0}(m)}\frac{C_{i}}{f_{loc}}} & {{x_{m,n} = 1},{n = 0}} \\ {t_{tran} + {\sum_{i = S_{n,1}}^{S_{n}(m)}\frac{C_{i}}{f_{n}}}} & {{x_{m,n} = 1},{n \in A}} \end{matrix} \right.$

-   -   where f_(loc) represents the computing power of the local         terminal, f_(n) represents the computing power of the idle         terminals, S_(n)(m) represents the position of the computing         task T_(m) in the set S_(n), S₀(m) represents the position of         the computing task T_(m) in the set S₀ and i represents the         serial number of the computing tasks in the set S₀ or the S_(n);     -   S34, a fee-charging function Mon_(n) for the idle terminals         respectively receiving the computing tasks of the local terminal         is calculated as follows:         Mon_(n)=φ_(n) log₂(1+Σ_(i=S) _(n,1) ^(S) ^(n) ^(,K) ^(n) μC         _(i))     -   where φ_(n) represents the pricing of unit energy consumption of         the idle terminal n;     -   S34, based on the processing delay t_(m) of the computing task         T_(m), the total computing energy consumption function E_(loc)         for the local terminal processing the computing tasks assigned         by the decision tasks, the transmission energy consumption         function E_(n) ^(tran) for the idle terminals involved in the         decision samples respectively receiving the computing tasks         assigned by the decision samples, and the fee-charging function         Mon_(n) for the idle terminals respectively receiving the         computing tasks of the local terminal, the total overhead         objective function of the local terminal corresponding to the         decision samples is determined as follows:

${\underset{x,t_{tran}}{minimize}\alpha\max t_{m}} + {\beta\left( {E_{loc} + E_{n}^{tran}} \right)} + {\gamma{\sum_{n = 1}^{N}{Mon}_{n}}}$

-   -   constraint conditions are as follows:     -   (1) t_(m)≤L_(m) ∀m∈{1, 2, . . . , M}     -   (2) Σ_(m=S) _(n,1) ^(S) ^(n) ^(,K) ^(n) μC_(m)≤E_(max) ^(n) ∀n∈Λ     -   (3) P^(tot)≤P_(max)     -   (4) α+β+γ=1     -   (5) α, β, γ∈(0, 1), t_(tran)>0, x_(m,n)∈{0,1}     -   where P_(max) represents the maximum transmission power of the         local terminal, E_(max) ^(n) represents the maximum allowable         energy consumption of the idle terminal n, and α, β, and γ         respectively represent the weight coefficients of the local         terminal for the processing delay, the energy consumption, and         the fee charging corresponding to the idle terminals         respectively receiving the computing tasks of the local         terminal.

A preferred technical scheme of the invention is as follows: the specific steps of determining the optimal transmission delay function corresponding to the decision samples in step S4 are as follows:

-   -   S41. respectively for each decision sample, the upper limit         t_(tran) ^(up) of transmission delay between the local terminal         and the idle terminals is calculated as follows:

$t_{tran}^{up} = {\min\limits_{n \in \Lambda}\left\{ \Delta_{n} \right\}}$

-   -   where Δ_(n) represents the upper limit of the transmission delay         between the local terminal and the idle terminal n and is         specifically shown in the following formula:

$\Delta_{n} = {\min\limits_{m \in S_{n}}\left\{ {L_{m} - t_{m}^{\prime}} \right\}}$

-   -   where t′_(m) represents the delay of the computing task T_(m) on         the local terminal or the idle terminals, and is specifically         shown in the following formula:

$t_{m}^{\prime} = \left\{ \begin{matrix} {\sum_{i = S_{0,1}}^{S_{0}(m)}\frac{C_{i}}{f_{loc}}} & {x_{m,0} = 1} \\ {\sum_{i = S_{n,1}}^{S_{n}(m)}\frac{C_{i}}{f_{n}}} & {{x_{m,n} = 1},{n \in \Lambda}} \end{matrix} \right.$

-   -   S42, based on the maximum transmission power P_(max) of the         local terminal, the lower limit t_(tran) ^(low) of transmission         delay between the local terminal and the idle terminals is         calculated according to the following formula:

${P_{\max} - {{Wn}_{0}{\sum_{n = 1}^{N}{\left( {\frac{1}{g_{n}} - \frac{1}{g_{n - 1}}} \right)2^{\frac{1}{t_{tran}^{low}W}{\sum\limits_{k = n}^{N}{\sum\limits_{m = 1}^{M}{x_{m,k}D_{m}}}}}}}} - \frac{{Wn}_{0}}{g_{N}}} = 0$

-   -   S43, based on the maximum transmission power P_(max) of the         local terminal, the transmission delay t′_(tran) which minimizes         the total overhead of the local terminal corresponding to the         decision samples is calculated according to the following         formula:

${\alpha - {\beta\frac{{Wn}_{0}}{g_{N}}} + {\beta n_{0}{\sum_{n = 1}^{N}{\left( {\frac{1}{g_{n}} - \frac{1}{g_{n - 1}}} \right)2^{\frac{1}{t_{tran}^{\prime}W}{\sum\limits_{k = n}^{N}{\sum\limits_{m = 1}^{M}{x_{m,k}D_{m}}}}}\left( {W - {\ln{2 \cdot \frac{1}{t_{tran}^{\prime}}}{\sum_{k = n}^{N}{\sum_{m = 1}^{M}{x_{m,k}D_{m}}}}}} \right)}}}} = 0$

-   -   S44, based on the upper limit t_(tran) ^(up) of the transmission         delay and the lower limit t_(tran) ^(low) of the transmission         delay between the local terminal and the idle terminals, the         optimal transmission delay function t*_(tran) is determined:

$\begin{matrix} {{{{if}t_{tran}^{up}} \geq {t_{tran}^{low}{and}t_{tran}^{low}} \leq t_{tran}^{\prime}},{{t_{tran}^{*} = {\min\left\{ {t_{tran}^{\prime},t_{up}^{tran}} \right\}}};}} & (1) \\ {{{{if}t_{tran}^{up}} \geq {t_{tran}^{low}{and}t_{tran}^{low}} > t_{tran}^{\prime}},{{t_{tran}^{*} = t_{tran}^{low}};}} & (2) \\ {{{{if}t_{tran}^{up}} < {t_{tran}^{low}{and}\max\limits_{m \in \Gamma}\left\{ {L_{m} - t_{m}^{\prime}} \right\}} < t_{tran}^{low}},{t_{tran}^{*} = {\max\left\{ {t_{tran}^{low},t_{tran}^{\prime}} \right\}}}} & (3) \\ {{{{if}t_{tran}^{up}} < {t_{tran}^{low}{and}\max\limits_{m \in \Gamma}\left\{ {L_{m} - t_{m}^{\prime}} \right\}} \geq t_{tran}^{low}},} & (4) \end{matrix}$ according to the step S41, the transmission delay upper limit between the local terminal and the idle terminals is recalculated and is recorded as t_(tran) ^(up*);

-   -   (1) if t_(tran) ^(up*)<t′_(tran), t*_(tran)=t_(tran) ^(up*);     -   (2) if t_(tran) ^(up*)≥t′_(tran), t*_(tran)=max{t_(tran) ^(low),         t′_(tran)};     -   S45, the processing delay t*_(m) of the computing task T_(m)         based on the optimal transmission delay function t*_(tran) is         obtained by bringing the optimal transmission delay function         t*_(tran) into the processing delay t*_(m) expression of the         computing task T_(m), and based on the total overhead objective         function of the local terminal corresponding to the decision         samples, the total overhead of the local terminal corresponding         to the decision samples is obtained as follows:

${\alpha\max t_{m}^{*}} + {\beta E_{loc}} + {\gamma{\sum_{n = 1}^{N}{Mon}_{n}}} + {\sigma\max\limits_{m \in {\{{1,2,\ldots,M}\}}}\left\{ \frac{\max\left\{ {{t_{m}^{*} - L_{m}},0} \right\}}{❘{t_{m}^{*} - L_{m}}❘} \right\}}$

-   -   where σ represents a preset penalty value.

A preferred technical scheme of the invention is as follows: the specific steps of selecting the decision samples that minimize the total overhead of the local terminal with the goal of minimizing the total overhead of the local terminal through a preset number of iterations and completing the allocation of the computing tasks on the local terminal in step S5 are as follows:

-   -   S51, different decision samples are used to participate in the         iterations, the computing tasks on the local terminal are         allocated according to the decision samples, the maximum number         of iterations is preset, whether the preset maximum number of         iterations is reached is determined, and if the preset maximum         number of iterations is reached, the decision samples in each         iteration that minimize the total overhead of the local terminal         in each iteration are selected to allocate the computing tasks         on the local terminal are allocated;     -   if the preset maximum number of iterations is not reached, step         S52 is performed;     -   S52, cross-operation is performed in the decision samples: two         decision samples are randomly selected from the decision         samples, and are marked as A₁ and A₂, the decision samples         reflect the execution decision of each task, N+1 columns of         vectors in the decision samples are regarded as chromosomes,         each chromosome contains M elements which correspondingly         represent the execution condition of M tasks on the local         terminal or the idle terminals, the decision samples A₁ and A₂         are respectively marked as a parent individual 1 and a parent         individual 2, the positions of the chromosome and the position         of a crossing node on the chromosome are randomly selected, and         the expression is as follows:     -   (θ₁, θ₂)     -   where θ₁ represents the position of the chromosome in the parent         individual to which the chromosome belongs, and θ₂ represents         the position of the crossing node in the chromosome; based on         this position, a cross interchange is performed, first θ₂         elements on first θ₁−1 columns and a θ₁-th column of the parent         individual 1 and last M−θ₂ elements on last N+1−θ₁ columns and a         θ₁-th column of the parent individual 2 are combined to generate         a new individual 1, last M−θ₂ elements on last N+1−01 columns         and a θ₁-th column of the parent individual 1 and first θ₂         elements on first θ₁−1 columns and a θ₁-th column of the parent         individual 2 are combined to generate a new individual 2, and         the two new individuals are generated and are respectively         marked as an offspring individual 1 and an offspring individual         2:     -   after each cross-operation is completed, whether each offspring         individual satisfies Σ_(n=0) ^(N)x_(m,n)=1 is checked, if         Σ_(n=0) ^(N)x_(m,n)=0, it means that the computing tasks are         missing, for the missing computing tasks, the idle terminals or         the local terminal which can execute the missing computing tasks         are randomly selected, if Σ_(n=0) ^(N)x_(m,n)>1, it means that         the computing tasks are repeated, the idle terminals or the         local terminal which can execute the repeated computing tasks         are randomly selected;     -   S53, the mutation claim operation is implemented in the decision         samples: based on the decision samples in the completed         iterations, the decision samples that minimize the total         overhead of the local terminal do not participate in the         mutation operation, for other decision samples, the mutation         operation is performed with a preset probability {circumflex         over (m)}, for the matrix corresponding to the decision sample,         the position of the chromosome and the position of a mutation         element on the chromosome are randomly selected, and the         expression is as follows:     -   (θ₃, θ₄)     -   where θ₃ represents the position of the chromosome in the         individual to which the chromosome belongs, and θ₄ represents         the position of the mutant element on the chromosome;     -   x_((θ) ₃ _(, θ) ₄ ₎ represent the value of the element on the         chromosome, if x_((θ) ₃ _(, θ) ₄ ₎=1, the value of the element         is modified to 0, and the idle terminal or local terminal that         executes the computing task to which the element corresponds is         randomly selected, if x_((θ) ₃ _(, θ) ₄ ₎=0, the value of the         element is modified to 1, the computing task to which the         element corresponds is removed from the idle terminal or the         local terminal that originally executed the computing task; and     -   S54, for the decision samples, and other decision samples         obtained through cross-operation and mutation operation, the         total overhead of the local terminal corresponding to the         decision samples is calculated, and the optimal original         population number of samples are selected to build a sample         group to participate in iterations until the preset maximum         number of iterations is reached.

Compared with the prior art, the present disclosure has the following beneficial effects and advantages:

-   -   1. The present disclosure is aimed at maximizing the number of         completed computing tasks; and the delay of the computing tasks         is minimized by decentralizing and unloading the computing tasks         to the different idle terminals, which ensures to the greatest         extent that each computing task can be completed within the         maximum delay allowed by the computing task.     -   2. According to the present disclosure, the overhead of the         local terminal in the aspects of computing task delay, energy         consumption, unloading fee, and the like are jointly considered,         and the aspects are jointly optimized, so that users can adjust         the definition of their overhead according to the emphasis on         different resources.     -   3. Different from the traditional method of unloading computing         tasks, the method makes full use of the computing resources of         surrounding idle terminals, can unload multiple computing tasks         to one terminal equipment at the same time, and may also unload         multiple computing tasks to multiple terminal equipment at the         same time with relatively high flexibility.

BRIEF DESCRIPTION OF DRAWINGS

FIG. 1 is a schematic flow diagram provided by an embodiment of the present disclosure.

FIG. 2 is a schematic diagram of a system model by an embodiment of the present disclosure.

DETAILED DESCRIPTION OF THE EMBODIMENTS

The present disclosure will be further described with reference to the accompanying drawings. The following embodiments are only used to illustrate the technical scheme of the present disclosure more clearly, and cannot be used to limit the scope of protection of the present disclosure.

Referring to FIG. 1 and FIG. 2 , the multi-task joint computing unloading and resource allocation method based on D2D (Device-to-Device) communication disclosed by the embodiment of the present disclosure executes the following steps according to a preset period to unload computing tasks on a local terminal to idle terminals with idle computing resources around the local terminal and realize the allocation of the computing tasks of the local terminal with the minimum total overhead of the local terminal. The D2D communication of the local terminal has the longest distance of 50 m.

S1. Idle terminals in a preset range are detected by taking the local terminal as the center, and the computing power f_(n), energy consumption pricing φ_(n), maximum allowable energy consumption E_(max) ^(n), and channel state g_(n) of the idle terminals are obtained, where n∈{1,2, . . . , N}, and N represents the total number of idle terminals.

S2. Based on the execution mode of the computing tasks on the local terminal, decision samples are constructed.

S3. Respectively for the decision samples, based on the processing delay function t_(m) of the computing tasks, where m∈{1,2, . . . , M}, M represents the total number of computing tasks, the total computing energy consumption function E_(loc) for the local terminal processing the computing tasks assigned by the decision tasks, the transmission energy consumption function E_(n) ^(tran) for the idle terminals involved in the decision samples respectively receiving the computing tasks assigned by the decision samples, where n∈{1,2, . . . , N}, N represents the total number of idle terminals, and the fee charging function for the idle terminals respectively receiving the computing tasks of the local terminal, the total overhead objective function and constraint conditions of the local terminal corresponding to the decision samples are determined.

S4. Respectively for the decision samples, the upper limit of the transmission delay between the local terminal corresponding to the decision samples and the idle terminals and the lower limit of the delay between the local terminal and the idle terminals are calculated, and the optimal transmission delay function corresponding to the decision samples is determined under constraint conditions; and

respectively for the decision samples, the total overhead of the local terminal corresponding to the decision samples is calculated based on the total overhead objective function and constraint conditions of the local terminal corresponding to the decision samples and the optimal transmission delay function corresponding to the decision samples under the constraint conditions.

S5. The decision samples that minimize the total overhead of the local terminal are selected with the goal of minimizing the total overhead of the local terminal through a preset number of iterations, and the allocation of the computing tasks on the local terminal is completed based on the decision samples.

According to the multi-task joint computing unloading and resource allocation method based on D2D (Device-to-Device) communication disclosed by the embodiment of the present disclosure, the specific steps of constructing decision samples in step S2 are as follows:

-   -   S21, computing tasks on a local terminal are represented by a         set Γ={T₁, T₂, . . . T_(M)}, wherein the total number of the         computing tasks is represented by M, the attributes of the         computing tasks are represented by a set {C_(m), D_(m), L_(m)},         wherein C_(m) represents the total number of CPU cycles required         to process the computing tasks, D_(m) represents the data volume         of the computing tasks, L_(m) represents the maximum delay         allowed by the computing tasks, wherein m∈{1,2, . . . , M}, and         M represents the total number of computing tasks;     -   S22, idle terminals are sorted and numbered in descending order         according to channel gains thereof, the channel gains of the         idle terminals satisfy the requirement of g₁≥ . . . ≥g_(n)≥ . .         . ≥g_(N), wherein g_(n) represents the channel gain of one of         the idle terminals, n∈{1,2, . . . , N}, N represents the total         number of idle terminals, and the idle terminals are presented         by a set Λ={1,2, . . . , N};     -   S23, respectively for one computing task T_(m) among the         computing tasks on the local terminal, wherein m∈{1,2, . . . ,         M}, and M represents the total number of computing tasks, the         execution mode of the computing task T_(m) is constructed as         follows:     -   {x_(m,0), x_(m,1), . . . x_(m,n), . . . x_(m,N)},     -   where x_(m,n) represents the execution mode of the computing         task T_(m), wherein n∈{1,2, . . . , N}, N represents the total         number of idle terminals, x_(m,0)=1 represents that the         computing task T_(m) is processed at the local terminal,         x_(m,0)=0 represents that the computing task T_(m) is not         processed at the local terminal, x_(m,n)=1 represents that         computing task T_(m) is unloaded to the idle terminal n for         processing, x_(m,n)=0 represents that the computing task T_(m)         is not processed on the idle terminal n, and the execution mode         of each computing task in computing task sets on the local         terminal satisfies Σ_(n=0) ^(N)x_(m,n)=1, that is, each         computing task can only be processed on an idle terminal or the         local terminal; and     -   S24, respectively for the computing tasks on the local terminal,         the decision samples are constructed based on the execution mode         of the computing tasks on the local terminal, each of the         decision samples is represented by a matrix A with M rows and         N+1 columns, and the matrix A is as follows:

$A = \begin{pmatrix} x_{1,0} & x_{1,1} & x_{1,2} & \cdots & x_{1,N} \\ x_{2,0} & x_{2,1} & x_{2,2} & \cdots & x_{2,N} \\  \vdots & \vdots & \vdots & \vdots & \vdots \\ x_{M,0} & x_{M,1} & x_{M,2} & \cdots & x_{M,N} \end{pmatrix}$

-   -   wherein the first column in the matrix A represents the         execution condition of the computing tasks on the local         terminal, and the second column to the (N+1)-th column represent         the execution condition of the computing tasks unloaded to the         idle terminals, and when the decision sample of one computing         task is constructed, whether the idle terminals satisfy energy         consumption limit is determined.

According to the multi-task joint computing unloading and resource allocation method based on D2D (Device-to-Device) communication disclosed by the embodiment of the present disclosure, the specific steps of determining the total overhead objective function and constraint conditions of the local terminal in step 3 are as follows:

-   -   S31, respectively for each decision sample, the number of         computing tasks on the local terminal and the idle terminals is         represented by a set {K₀, K₁, . . . , K_(N)}, the computing         tasks are processed on the idle terminals or the local terminal         in a serial mode, and the computing tasks on the local terminal         are arranged in descending order according to the maximum         allowable delay L_(m), and are represented by a set S₀={S_(0,1),         S_(0,2), . . . , S_(0,K) ₀ }; the computing tasks on the idle         terminal n are arranged in descending order according to the         maximum allowable delay L_(m), and are represented by a set         S_(n)={S_(n,1), S_(n,2), . . . , S_(n,K) _(n) };     -   S32, the total computing energy consumption function E_(loc) for         the local terminal processing the computing tasks assigned by         the decision tasks is calculated, and the transmission energy         consumption function E_(n) ^(tran) for the idle terminals         involved in the decision samples respectively receiving the         computing tasks assigned by the decision samples are as follows:         E _(loc)=Σ_(m=1) ^(M) x _(m,0) μC _(m),         E _(n) ^(tran) =t _(tran) ·P ^(tot),     -   where μ represents the energy consumed in each CPU cycle,         t_(tran) represents the transmission time for the local terminal         to unload the computing tasks to the idle terminals, and P^(tot)         represents the minimum total transmission power of the local         terminal;

wherein the decision x is executed based on the computing tasks corresponding to the decision samples, and the relationship between the transmission time t_(tran) for the local terminal to unload the computing tasks to the idle terminals and the minimum total transmission power P^(tot) of the local terminal is as follows:

${P^{tot}\left( {x,t_{trean}} \right)} = {{{Wn}_{0}{\sum_{n = 1}^{N}{\left( {\frac{1}{g_{n}} - \frac{1}{g_{n - 1}}} \right)2^{\frac{1}{t_{tran}W}{\sum\limits_{k = n}^{N}{\sum\limits_{m = 1}^{M}{x_{m,k}D_{m}}}}}}}} - \frac{{Wn}_{0}}{g_{N}}}$

-   -   where g_(n) represents the n-th idle terminal, g_(n-1)         represents the (n−1)-th idle terminal, g_(N) represents the N-th         idle terminal, and g_(n-1)≥g_(n)≥g_(N), W represents the         bandwidth of a transmission channel, n₀ represents the power         spectral density of white noise, and k represents the serial         number of the idle terminal;     -   S33, one computing task T_(m) among the computing tasks on the         local terminal is unloaded to the idle terminal n, and the         expression of the processing delay t_(m) of the computing task         T_(m) is as follows:

$t_{m}^{\prime} = \left\{ {\begin{matrix} {\sum_{i = S_{0,1}}^{S_{0}(m)}\frac{C_{i}}{f_{loc}}} & {x_{m,0} = 1} \\ {t_{tran} + {\sum_{i = S_{n,1}}^{S_{n}(m)}\frac{C_{i}}{f_{n}}}} & {{x_{m,n} = 1},{n \in \Lambda}} \end{matrix},} \right.$

-   -   where f_(loc) represents the computing power of the local         terminal, f_(n) represents the computing power of the idle         terminals, that is, the number of CPU cycles per second that the         local terminal or the idle terminals can handle, S_(n)(m)         represents the position of the computing task T_(m) in the set         S_(n), S₀(m) represents the position of the computing task T_(m)         in the set S₀ and i represents the serial number of the         computing task in the set S₀ or the S_(n);     -   S34, while the local terminal unloads the computing tasks to the         idle terminals, the local terminal needs to pay a fee to the         idle terminals as a commission, a fee-charging function Mon_(n)         for the idle terminals respectively receiving the computing         tasks of the local terminal is calculated as follows:         Mon_(n)=φ_(n) log₂(1+Σ_(i=S) _(n,1) ^(S) ^(n,) ^(K) ^(n) μC         _(i)),     -   where φ_(n) represents the pricing of unit energy consumption of         the idle terminal n, and is related to the maximum allowable         energy consumption E_(max) ^(n) of the idle terminal n, the         computing power f_(n) of the idle terminal n, and the value         emphasizing factor η_(n) of the idle terminal n for energy, and         the specific relationship is as follows:

${\varphi_{n} = {\frac{f_{n}}{E_{\max}^{n}}\eta_{n}}};$

-   -   S34, based on the processing delay t_(m) of the computing task         T_(m), the total computing energy consumption function E_(loc)         for the local terminal processing the computing tasks assigned         by the decision tasks, the transmission energy consumption         function E_(n) ^(tran) for the idle terminals involved in the         decision samples respectively receiving the computing tasks         assigned by the decision samples, and the fee-charging function         Mon_(n) for the idle terminals respectively receiving the         computing tasks of the local terminal, the total overhead         objective function of the local terminal corresponding to the         decision samples is determined as follows:

${{\underset{x,t_{tran}}{minimize}\alpha\max t_{m}} + {\beta\left( {E_{loc} + E_{n}^{tran}} \right)} + {\gamma{\sum_{n = 1}^{N}{Mon}_{n}}}},$

-   -   constraint conditions are as follows:     -   (1) t_(m)≤L_(m) ∀m∈{1, 2, . . . , M}     -   (2) Σ_(m=S) _(n,1) ^(S) ^(n,) ^(K) ^(n) μC_(m)≤E_(max) ^(n) ∀n∈Λ     -   (3) P^(tot)≤P_(max)     -   (4) α+β+γ=1     -   (5) α, β, γ∈(0, 1), t_(tran)>0, x_(m,n)∈{0,1}     -   where P_(max) represents the maximum transmission power of the         local terminal, E_(max) ^(n) represents the maximum allowable         energy consumption of the idle terminal n, α, β and γ         respectively represent the weight coefficients of the local         terminal for the processing delay, the energy consumption, and         the fee charging corresponding to the idle terminals         respectively receiving the computing tasks of the local         terminal, the three aspects respectively reflect the local         terminal's emphasis on the processing delay, the energy         consumption and unloading fee, the formula (1) guarantees that         all computing tasks must be completed within the maximum time         limit of the computing tasks, the formula (2) limits the maximum         energy of the idle terminals, which can be used for computing,         the formula (3) is the limit for the transmission power of the         local terminal, the formula (4) specifies the relationship among         the processing delay coefficient, the energy consumption         coefficient, and the unloading fee coefficient, and the         formula (5) limits the range of values of α, β, γ.

According to the multi-task joint computing unloading and resource allocation method based on D2D (Device-to-Device) communication disclosed by the embodiment of the present disclosure, the specific steps of determining the optimal transmission delay function corresponding to the decision samples in step S4 are as follows:

-   -   S41. respectively for each decision sample, the upper limit         t_(tran) ^(up) of transmission delay between the local terminal         and the idle terminals is calculated as follows:

${t_{tran}^{up} = {\min\limits_{n \in \Lambda}\left\{ \Delta_{n} \right\}}},$

-   -   where Δ_(n) represents the upper limit of the transmission delay         between the local terminal and the idle terminal n and is         specifically shown in the following formula:

${\Delta_{n} = {\min\limits_{m \in S_{n}}\left\{ {L_{m} - t_{m}^{\prime}} \right\}}},$

-   -   where t′_(m) represents the delay of the computing task T_(m) on         the local terminal or the idle terminals, and is specifically         shown in the following formula:

$t_{m}^{\prime} = \left\{ {\begin{matrix} {\sum_{i = S_{0,1}}^{S_{0}(m)}\frac{C_{i}}{f_{loc}}} & {x_{m,0} = 1} \\ {\sum_{i = S_{n,1}}^{S_{n}(m)}\frac{C_{i}}{f_{n}}} & {{x_{m,n} = 1},{n \in \Lambda}} \end{matrix},} \right.$

-   -   S42, based on the maximum transmission power P_(max) of the         local terminal, the lower limit t_(tran) ^(low) of transmission         delay between the local terminal and the idle terminals is         calculated according to the following formula:

${{P_{\max} - {{Wn}_{0}{\sum_{n = 1}^{N}{\left( {\frac{1}{g_{n}} - \frac{1}{g_{n - 1}}} \right)2^{\frac{1}{t_{tran}^{low}W}{\sum\limits_{k = n}^{N}{\sum\limits_{m = 1}^{M}{x_{m,k}D_{m}}}}}}}} - \frac{{Wn}_{0}}{g_{N}}} = 0},$

-   -   S43, based on the maximum transmission power P_(max) of the         local terminal, the transmission delay t′_(tran) which minimizes         the total overhead of the local terminal corresponding to the         decision samples is calculated according to the following         formula:

${\alpha - {\beta\frac{{Wn}_{0}}{g_{N}}} + {\beta n_{0}{\sum}_{n = 1}^{N}\left( {\frac{1}{g_{n}} - \frac{1}{g_{n - 1}}} \right)2^{\frac{1}{t_{tran}^{\prime}W}{\sum}_{k = n}^{N}{\sum}_{m = 1}^{M}x_{m,k}D_{m}}\left( {W - {\ln{2 \cdot \frac{1}{t_{tran}^{\prime}}}{\sum}_{k = n}^{N}{\sum}_{m = 1}^{M}x_{m,k}D_{m}}} \right)}} = 0$

-   -   S44, based on the upper limit t_(tran) ^(up) of the transmission         delay and the lower limit t_(tran) ^(low) of the transmission         delay between the local terminal and the idle terminals, the         optimal transmission delay function t*_(tran) is determined:     -   if t_(tran) ^(up)≥t_(tran) ^(low), it means that there is         t_(tran) which can make loaded computing tasks be completed         within the constraint time, then it will be discussed as         follows:     -   (1) if t_(tran) ^(up)≥t_(tran) ^(low) and t_(tran)         ^(low)≤t′_(tran), t*_(tran)=min{t′_(tran), t*_(tran)};     -   (2) if t_(tran) ^(up)≥t_(tran) ^(low) and t_(tran)         ^(low)>t′_(tran), t*_(tran)=t_(tran) ^(low);     -   if t_(tran) ^(up)<t_(tran) ^(low), it means that at present,         there are some of loaded computing tasks which cannot be         completed on time, then it will be discussed as follows:

$\begin{matrix} {{{{if}t_{tran}^{up}} < {t_{tran}^{low}{and}\max\limits_{m \in \Gamma}\left\{ {L_{m} - t_{m}^{\prime}} \right\}} < t_{tran}^{low}},} & (3) \end{matrix}$ it means that all the unloaded computing tasks cannot be completed within the delay limit, then t′_(tran)=max{t_(tran) ^(low), t′_(tran)};

$\begin{matrix} {{{{if}t_{tran}^{up}} < {t_{tran}^{low}{and}\max\limits_{m \in \Gamma}\left\{ {L_{m} - t_{m}^{\prime}} \right\}} \geq t_{tran}^{low}},} & (4) \end{matrix}$ it means that part of the computing tasks can be completed within the delay constraint, and for the computing tasks that can be completed on time, according to the step S41, the upper limit of the transmission delay between the local terminal and the idle terminals is recalculated and is recorded as t_(tran) ^(up*);

-   -   (1) if t_(tran) ^(up*)<t′_(tran), t*_(tran)=t_(tran) ^(up*);     -   (2) if t_(tran) ^(up*)≥t′_(tran), t*_(tran)=max{t_(tran) ^(low),         t′_(tran)};     -   S45, the processing delay t*_(m) of the computing task T_(m)         based on the optimal transmission delay function t*_(tran) is         obtained by bringing the optimal transmission delay function         t*_(tran) into the processing delay t*_(m) expression of the         computing task T_(m), and based on the total overhead objective         function of the local terminal corresponding to the decision         samples, the total overhead of the local terminal corresponding         to the decision samples is obtained as follows:

${{\alpha{maxt}_{m}^{*}} + {\beta E_{loc}} + {\gamma{\sum}_{n = 1}^{N}{Mon}_{n}} + {\sigma\max\limits_{m \in {\{{1,2,{\ldots M}}\}}}\left\{ \frac{\max\left\{ {{t_{m}^{*} - L_{m}},0} \right\}}{❘{t_{m}^{*} - L_{m}}❘} \right\}}},$

-   -   where σ represents a preset penalty value, if there are         computing tasks that cannot be completed on time, the preset         penalty value σ is added based on the total overhead objective         function of the local terminal corresponding to the decision         samples.

According to the multi-task joint computing unloading and resource allocation method based on D2D (Device-to-Device) communication disclosed by the embodiment of the present disclosure, the specific steps of selecting the decision samples that minimize the total overhead of the local terminal with the goal of minimizing the total overhead of the local terminal through a preset number of iterations and completing the allocation of the computing tasks on the local terminal in step S5 are as follows:

-   -   S51, different decision samples are used to participate in the         iterations, the computing tasks on the local terminal are         allocated according to the decision samples, the maximum number         of iterations is preset, whether the preset maximum number of         iterations is reached is determined, and if the preset maximum         number of iterations is reached, the decision samples in each         iteration that minimize the total overhead of the local terminal         are selected to allocate the computing tasks on the local         terminal are allocated;     -   if the preset maximum number of iterations is not reached, step         S52 is performed;     -   S52, cross-operation is performed in the decision samples: two         decision samples are randomly selected from the decision samples         and are marked as A₁ and A₂, the decision samples reflect the         execution decision of each task, N+1 columns of vectors in the         decision samples are regarded as chromosomes, each chromosome         contains M elements which correspondingly represent the         execution condition of M tasks on the local terminal or the idle         terminals, the decision samples A₁ and A₂ are respectively         marked as a parent individual 1 and a parent individual 2, the         positions of the chromosome and the position of a crossing node         on the chromosome are randomly selected, and the expression is         as follows:     -   (θ₁, θ₂)     -   where θ₁ represents the position of the chromosome in the parent         individual to which the chromosome belongs, and θ₂ represents         the position of the crossing node in the chromosome; based on         this position, a cross interchange is performed, first θ₂         elements on first θ₁−1 columns and a θ₁−th column of the parent         individual 1 and last M−θ₂ elements on last N+1−81 columns and a         θ₁−th column of the parent individual 2 are combined to generate         a new individual 1, last M−θ₂ elements on last N+1−θ₁ columns         and a θ₁−th column of the parent individual 1 and first θ₂         elements on first θ₁− 1 columns and a θ₁−th column of the parent         individual 2 are combined to generate a new individual 2, and         the two new individuals are generated and are respectively         marked as an offspring individual 1 and an offspring individual         2;     -   after each cross-operation is completed, whether each offspring         individual satisfies Σ_(n=0) ^(N)x_(m,n)=1 is checked, if         Σ_(n=0) ^(N)x_(m,n)=0, it means that the computing tasks are         missing, for the missing computing tasks, the idle terminals or         the local terminal which can execute the missing computing tasks         are randomly selected, if Σ_(n=0) ^(N)x_(m,n)>1, it means that         the computing tasks are repeated, the idle terminals or the         local terminal which can execute the repeated computing tasks         are randomly selected;     -   S53, the mutation operation is implemented in the decision         samples: based on the decision samples in the completed         iterations, the decision samples that minimize the total         overhead of the local terminal do not participate in the         mutation operation, for other decision samples, the mutation         operation is performed with a preset probability {circumflex         over (m)}, for the matrix corresponding to the decision sample,         the position of the chromosome and the position of a mutation         element on the chromosome are randomly selected, and the         expression is as follows:     -   (θ₃, θ₄)     -   where θ₃ represents the position of the chromosome in the         individual to which the chromosome belongs, and θ₄ represents         the position of the mutant element on the chromosome;     -   x_((θ) ₃ _(, θ) ₄ ₎ represent the value of the element on the         chromosome, if x_((θ) ₃ _(, θ) ₄ ₎=1, the value of the element         is modified to 0, and the idle terminal or local terminal that         executes the computing task to which the element corresponds is         randomly selected, if x_((θ) ₃ _(, θ) ₄ ₎=0, the value of the         element is modified to 1, the computing task to which the         element corresponds is removed from the idle terminal or the         local terminal that originally executed the computing task; and     -   S54, for the decision samples, and other decision samples         obtained through cross-operation and mutation operation, the         total overhead of the local terminal corresponding to the         decision samples is calculated, and the optimal original         population number of samples are selected to build a sample         group to participate in iterations until the preset maximum         number of iterations is reached.

The embodiments of the present disclosure are described above in detail with reference to the accompanying drawings, but the present disclosure is not limited to the above embodiments, and various changes can be made without departing from the purposes of the present disclosure and within the scope of knowledge of those ordinary skill in the art. 

What is claimed is:
 1. A multi-task joint computing unloading and resource allocation method based on D2D (Device-to-Device) communication, wherein the specific steps of constructing decision samples are as follows: S1. detecting idle terminals in a preset range by taking a local terminal as a center, and computing power fn energy consumption pricing φ_(n), maximum allowable energy consumption E_(max) ^(n), and channel state g_(n) of the idle terminals are obtained, wherein n∈{1,2, . . . , N}, and N represents the total number of the idle terminals; S2. constructing decision samples based on an execution mode of computing tasks on the local terminal; S3. respectively for the decision samples, determining a total overhead objective function and constrain conditions of the local terminal corresponding to the decision samples, based on a processing delay function t_(m) of the computing tasks, wherein m∈{1,2, . . . , M}, M represents the total number of the computing tasks, a total computing energy consumption function E_(loc) for local terminal processing the computing tasks assigned by the decision tasks, a transmission energy consumption function E_(n) ^(tran) for the idle terminals involved in the decision samples respectively receiving the computing tasks assigned by the decision samples, wherein n∈{1,2, . . . , N}, N represents the total number of the idle terminals, and a fee charging function for the idle terminals respectively receiving the computing tasks of the local terminal; S4. respectively for the decision samples, calculating an upper limit of a transmission delay between the local terminal corresponding to the decision samples and the idle terminals, calculating a lower limit of a delay between the local terminal and the idle terminals, and determining an optimal transmission delay function corresponding to the decision samples under constraint conditions; respectively for the decision samples, calculating a total overhead of the local terminal corresponding to the decision samples based on the total overhead objective function, the constraint conditions of the local terminal corresponding to the decision samples, and the optimal transmission delay function corresponding to the decision samples under the constraint conditions; and S5. selecting the decision samples that minimize the total overhead of the local terminal with the goal of minimizing the total overhead of the local terminal through a preset number of iterations, and completing an allocation of the computing tasks on the local terminal based on the decision samples; wherein the specific steps of constructing decision samples in step S2 are as follows: S21, computing tasks on the local terminal are represented by a set Γ={T₁, T₂, . . . T_(M)}, wherein the total number of the computing tasks is represented by M; the attributes of the computing tasks are represented by a set {C_(m), D_(m), L_(m)}, wherein C_(m) represents the total number of CPU (central processing unit) cycles required to process the computing tasks, D_(m) represents the data volume of the computing tasks, L_(m) represents the maximum delay allowed by the computing tasks, wherein m∈{1,2, . . . , M}, and M represents the total number of computing tasks; S22, the idle terminals are sorted and numbered in descending order according to channel gains thereof, the channel gains of the idle terminals satisfy the requirement of g₁≥ . . . ≥g_(n)≥ . . . ≥g_(N), wherein g_(n) represents the channel gain of one of the idle terminals, n∈{1,2, . . . , N}, N represents the total number of the idle terminals, and the idle terminals are presented by a set Λ={1,2, . . . , N}; S23, respectively for one computing task T_(m) among the computing tasks on the local terminal, wherein m∈{1,2, . . . , M}, and M represents the total number of the computing tasks, the execution mode of the computing task T_(m) is constructed as follows: {x_(m,0), x_(m,1), . . . , x_(m,n), . . . , x_(m,N)} wherein x_(m,n) represents the execution mode of the computing task T_(m), wherein n∈{1,2, . . . , N}, N represents the total number of idle terminals, x_(m,0)=1 represents that the computing task T_(m) is processed at the local terminal, x_(m,0)=0 represents that the computing task T_(m) is not processed at the local terminal, x_(m,n)=1 represents that computing task T_(m) is unloaded to the idle terminal n for processing, x_(m,n)=0 represents that the computing task T_(m) is not processed on the idle terminal n, and the execution mode of each computing task in computing task sets on the local terminal satisfies Σ_(n=0) ^(N)x_(m,n)=1; and S24, respectively for the computing tasks on the local terminal, constructing the decision samples based on the execution mode of the computing tasks on the local terminal, each of the decision samples is represented by a matrix A with M rows and N+1 columns, and the matrix A is as follows: $A = \begin{pmatrix} x_{1,0} & x_{1,1} & x_{1,2} & \ldots & x_{1,N} \\ x_{2,0} & x_{2,1} & x_{2,2} & \ldots & x_{2,N} \\  \vdots & \vdots & \vdots & \vdots & \vdots \\ x_{M,0} & x_{M,1} & x_{M,2} & \ldots & x_{M,N} \end{pmatrix}$ wherein the first column in the matrix A represents the execution condition of the computing tasks on the local terminal, and the second column to the (N+1)-th column represent the execution condition of the computing tasks unloaded to the idle terminals.
 2. The multi-task joint computing unloading and resource allocation method based on D2D (Device-to-Device) communication according to claim 1, wherein the specific steps of determining the total overhead objective function and constraint conditions of the local terminal in step 3 are as follows: S31. respectively for each decision sample, the number of computing tasks on the local terminal and the idle terminals is represented by a set {K₀, K₁, . . . , K_(N)}, and the computing tasks on the local terminal are arranged in descending order according to the maximum allowable delay L_(m), and are represented by a set S₀={S_(0,1), S_(0,2), . . . , S_(0,K) ₀ }; the computing tasks on the idle terminal n are arranged in descending order according to the maximum allowable delay L_(m), and are represented by a set S_(n)={S_(n,1), S_(n,2), . . . , S_(n,K) _(n) }; S32, the total computing energy consumption function E_(loc) for the local terminal processing the computing tasks assigned by the decision tasks is calculated, and the transmission energy consumption function E_(n) ^(tran) for the idle terminals involved in the decision samples respectively receiving the computing tasks assigned by the decision samples are as follows: $E_{loc} = {\sum\limits_{m = 1}^{M}{x_{m,0}\mu C_{m}}}$ E_(n)^(tran) = t_(tran) ⋅ P^(tot) where μ represents the energy consumed in each CPU cycle, t_(tran) represents the transmission time for the local terminal to unload the computing tasks to the idle terminals, and P^(tot) represents the minimum total transmission power of the local terminal; wherein the decision x is executed based on the computing tasks corresponding to the decision samples, and the relationship between the transmission time t_(tran) for the local terminal to unload the computing tasks to the idle terminals and the minimum total transmission power P^(tot) of the local terminal is as follows: ${P^{tot}\left( {x,t_{tran}} \right)} = {{{Wn}_{0}{\sum\limits_{n = 1}^{N}{\left( {\frac{1}{g_{n}} - \frac{1}{g_{n - 1}}} \right)2^{\frac{1}{t_{tran}W}{\sum}_{k = n}^{N}{\sum}_{m = 1}^{M}x_{m,k}D_{m}}}}} - \frac{{Wn}_{0}}{g_{n}}}$ where g_(n) represents the n-th idle terminal, g_(n-1) represents the (n−1)-th idle terminal, g_(N) represents the N-th idle terminal, and g_(n-1)≥g_(n)≥g_(N), W represents the bandwidth of a transmission channel, n₀ represents the power spectral density of white noise, and k represents the serial number of the idle terminal; S33, one computing task T_(m) among the computing tasks on the local terminal is unloaded to the idle terminal n, and the expression of the processing delay t_(m) of the computing task T_(m) is as follows: $t_{m} = \left\{ \begin{matrix} {\sum\limits_{i = S_{0,1}}^{S_{0}(m)}\frac{C_{i}}{f_{loc}}} & {{x_{m,n} = 1},{n = 0}} \\ {t_{tran} + {\sum\limits_{i = S_{n\text{.1}}}^{S_{n}(m)}\frac{C_{i}}{f_{n}}}} & {{x_{m,n} = 1},{n \in \Lambda}} \end{matrix} \right.$ where f_(loc) represents the computing power of the local terminal, f_(n) represents the computing power of the idle terminals, S_(n)(m) represents the position of the computing task T_(m) in the set S_(n), S₀(m) represents the position of the computing task T_(m) in the set S₀ and i represents the serial number of the computing tasks in the set S₀ or the S_(n); S34, a fee-charging function Mon_(n) for the idle terminals respectively receiving the computing tasks of the local terminal is calculated as follows: ${Mon}_{n} = {\varphi_{n}{\log_{2}\left( {1 + {\sum\limits_{i = S_{n,1}}^{S_{n,K_{n}}}{\mu C_{i}}}} \right)}}$ where φ_(n) represents the pricing of unit energy consumption of the idle terminal n; S34, based on the processing delay t_(m) of the computing task T_(m), the total computing energy consumption function E_(loc) for the local terminal processing the computing tasks assigned by the decision tasks, the transmission energy consumption function E_(n) ^(tran) for the idle terminals involved in the decision samples respectively receiving the computing tasks assigned by the decision samples, and the fee-charging function Mon_(n) for the idle terminals respectively receiving the computing tasks of the local terminal, the total overhead objective function of the local terminal corresponding to the decision samples is determined as follows: ${\underset{x,t_{tran}}{minimize}\alpha{maxt}_{m}} + {\beta\left( {E_{loc} + E_{n}^{tran}} \right)} + {\gamma{\sum\limits_{n = 1}^{N}{Mon}_{n}}}$ constraint conditions are as follows: (1) t_(m)≤L_(m) ∀m∈{1, 2, . . . , M} (2) Σ_(m=S) _(n,1) ^(S) ^(n) ^(,K) ^(n) μC_(m)≤E_(max) ^(n) ∀n∈Λ (3) P^(tot)≤P_(max) (4) α+β+γ=1 (5) α, β, γ∈(0, 1), t_(tran)>0, x_(m,n)∈{0,1} where P_(max) represents the maximum transmission power of the local terminal, E_(max) ^(n) represents the maximum allowable energy consumption of the idle terminal n, and α, β, and γ respectively represent the weight coefficients of the local terminal for the processing delay, the energy consumption, and the fee charging corresponding to the idle terminals respectively receiving the computing tasks of the local terminal.
 3. The multi-task joint computing unloading and resource allocation method based on D2D (Device-to-Device) communication according to claim 2, wherein the specific steps of determining the optimal transmission delay function corresponding to the decision samples in step S4 are as follows: S41, respectively for each decision sample, the upper limit t_(tran) ^(up) of transmission delay between the local terminal and the idle terminals is calculated as follows: $t_{tran}^{up} = {\min\limits_{n \in \Lambda}\left\{ \Delta_{n} \right\}}$ where Δ_(n) represents the upper limit of the transmission delay between the local terminal and the idle terminal n and is specifically shown in the following formula: $\Delta_{n} = {\min\limits_{m \in S_{n}}\left\{ {L_{m} - t_{m}^{\prime}} \right\}}$ where t′_(m) represents the delay of the computing task T_(m) on the local terminal or the idle terminals, and is specifically shown in the following formula: $t_{m}^{\prime} = \left\{ \begin{matrix} {\sum\limits_{i = S_{0,1}}^{S_{0}(m)}\frac{C_{i}}{f_{loc}}} & {x_{m,0} = 1} \\ {\sum\limits_{i = S_{n,1}}^{S_{n}(m)}\frac{C_{i}}{f_{n}}} & {{x_{m,n} = 1},{n \in \Lambda}} \end{matrix} \right.$ S42, based on the maximum transmission power P_(max) of the local terminal, the lower limit t_(tran) ^(low) of transmission delay between the local terminal and the idle terminals is calculated according to the following formula: ${P_{\max} - {{Wn}_{0}{\sum\limits_{n = 1}^{N}{\left( {\frac{1}{g_{n}} - \frac{1}{g_{n - 1}}} \right)2^{\frac{1}{t_{tran}^{low}W}{\sum}_{k = n}^{N}{\sum}_{m = 1}^{M}x_{m,k}D_{m}}}}} - \frac{{Wn}_{0}}{g_{N}}} = 0$ S43, based on the maximum transmission power P_(max) of the local terminal, the transmission delay t′_(tran) which minimizes the total overhead of the local terminal corresponding to the decision samples is calculated according to the following formula: ${\alpha - {\beta\frac{{Wn}_{0}}{g_{N}}} + {\beta n_{0}{\sum\limits_{n = 1}^{N}{\left( {\frac{1}{g_{n}} - \frac{1}{g_{n - 1}}} \right)2^{\frac{1}{t_{tran}^{\prime}W}{\sum}_{k = n}^{N}{\sum}_{m = 1}^{M}x_{m,k}D_{m}}\left( {W - {\ln{2 \cdot \frac{1}{t_{tran}^{\prime}}}{\sum\limits_{k = n}^{N}{\sum\limits_{m = 1}^{M}{x_{m,k}D_{m}}}}}} \right)}}}} = 0$ S44, based on the upper limit t_(tran) ^(up) of the transmission delay and the lower limit t_(tran) ^(low) of the transmission delay between the local terminal and the idle terminals, the optimal transmission delay function t*_(tran) is determined: $\begin{matrix} {{{{if}t_{tran}^{up}} \geq {t_{tran}^{low}{and}t_{tran}^{low}} \leq t_{tran}^{\prime}},{{t_{tran}^{*} = {\min\left\{ {t_{tran}^{\prime},t_{tran}^{up}} \right\}}};}} & (1) \end{matrix}$ $\begin{matrix} {{{{if}t_{tran}^{up}} \geq {t_{tran}^{low}{and}t_{tran}^{low}} > t_{tran}^{\prime}},{{t_{tran}^{*} = t_{tran}^{low}};}} & (2) \end{matrix}$ $\begin{matrix} {{{{if}t_{tran}^{up}} < {t_{tran}^{low}{and}\max\limits_{m \in \Gamma}\left\{ {L_{m} - t_{m}^{\prime}} \right\}} < t_{tran}^{low}},{t_{tran}^{*} = {\max\left\{ {t_{tran}^{low},t_{tran}^{\prime}} \right\}}}} & (3) \end{matrix}$ $\begin{matrix} {{{{if}t_{tran}^{up}} < {t_{tran}^{low}{and}\max\limits_{m \in \Gamma}\left\{ {L_{m} - t_{m}^{\prime}} \right\}} \geq t_{tran}^{low}},} & (4) \end{matrix}$ according to the step S41, the transmission delay upper limit between the local terminal and the idle terminals is recalculated and is recorded as t_(tran) ^(up*); (1) if t_(tran) ^(up*)<t′_(tran), t*_(tran)=t_(tran) ^(up*); (2) if t_(tran) ^(up*)≥t′_(tran), t*_(tran)=max{t_(tran) ^(low), t′_(tran)}; S45, the processing delay t*_(m) of the computing task T_(m) based on the optimal transmission delay function t*_(tran) is obtained by bringing the optimal transmission delay function t*_(tran) into the processing delay t*_(m) expression of the computing task T_(m), and based on the total overhead objective function of the local terminal corresponding to the decision samples, the total overhead of the local terminal corresponding to the decision samples is obtained as follows: ${\alpha\max t_{m}^{*}} + {\beta E_{loc}} + {\gamma{\sum\limits_{n = 1}^{N}{Mon}_{n}}} + {\sigma\max\limits_{m \in {\{{1,2,\ldots,M}\}}}\left\{ \frac{\max\left\{ {{t_{m}^{*} - L_{m}},0} \right\}}{❘{t_{m}^{*} - L_{m}}❘} \right\}}$ where σ represents a preset penalty value.
 4. The multi-task joint computing unloading and resource allocation method based on D2D (Device-to-Device) communication according to claim 3, wherein the specific steps of selecting the decision samples that minimize the total overhead of the local terminal with the goal of minimizing the total overhead of the local terminal through a preset number of iterations and completing the allocation of the computing tasks on the local terminal in step S5 are as follows: S51, different decision samples are used to participate in the iterations, the computing tasks on the local terminal are allocated according to the decision samples, the maximum number of iterations is preset, whether the preset maximum number of iterations is reached is determined, and if the preset maximum number of iterations is reached, the decision samples in each iteration that minimize the total overhead of the local terminal in each iteration are selected to allocate the computing tasks on the local terminal are allocated; if the preset maximum number of iterations is not reached, step S52 is performed; S52, cross-operation is performed in the decision samples: two decision samples are randomly selected from the decision samples and are marked as A₁ and A₂, the decision samples reflect the execution decision of each task, N+1 columns of vectors in the decision samples are regarded as chromosomes, each chromosome contains M elements which correspondingly represent the execution condition of M tasks on the local terminal or the idle terminals, the decision samples A₁ and A₂ are respectively marked as a parent individual 1 and a parent individual 2, the positions of the chromosome and the position of a crossing node on the chromosome are randomly selected, and the expression is as follows: (θ₁, θ₂) where θ₁ represents the position of the chromosome in the parent individual to which the chromosome belongs, and θ₂ represents the position of the crossing node in the chromosome; based on this position, a cross interchange is performed, first θ₂ elements on first θ₁−1 columns and a θ₁−th column of the parent individual 1 and last M−θ₂ elements on last N+1−81 columns and a θ₁−th column of the parent individual 2 are combined to generate a new individual 1, last M−θ₂ elements on last N+1−θ₁ columns and a θ₁−th column of the parent individual 1 and first θ₂ elements on first θ₁− 1 columns and a θ₁−th column of the parent individual 2 are combined to generate a new individual 2, and the two new individuals are generated and are respectively marked as an offspring individual 1 and an offspring individual 2; after each cross-operation is completed, whether each offspring individual satisfies Σ_(n=0) ^(N)x_(m,n)=1 is checked, if Σ_(n=0) ^(N)x_(m,n)=0, it means that the computing tasks are missing, for the missing computing tasks, the idle terminals or the local terminal which can execute the missing computing tasks are randomly selected, if Σ_(n=0) ^(N)x_(m,n)>1, it means that the computing tasks are repeated, the idle terminals or the local terminal which can execute the repeated computing tasks are randomly selected; S53, the mutation operation is implemented in the decision samples: based on the decision samples in the completed iterations, the decision samples that minimize the total overhead of the local terminal do not participate in the mutation operation, for other decision samples, the mutation operation is performed with a preset probability {circumflex over (m)}, for the matrix corresponding to the decision sample, the position of the chromosome and the position of a mutation element on the chromosome are randomly selected, and the expression is as follows: (θ₃, θ₄) where θ₃ represents the position of the chromosome in the individual to which the chromosome belongs, and θ₄ represents the position of the mutant element on the chromosome; x_((θ) ₃ _(, θ) ₄ ₎ represent the value of the element on the chromosome, if x_((θ) ₃ _(, θ) ₄ ₎=1, the value of the element is modified to 0, and the idle terminal or local terminal that executes the computing task to which the element corresponds is randomly selected, if x_((θ) ₃ _(, θ) ₄ ₎=0, the value of the element is modified to 1, the computing task to which the element corresponds is removed from the idle terminal or the local terminal that originally executed the computing task; and S54, for the decision samples, and other decision samples obtained through cross-operation and mutation operation, the total overhead of the local terminal corresponding to the decision samples is calculated, and the optimal original population number of samples are selected to build a sample group to participate in iterations until the preset maximum number of iterations is reached. 